package com.todo.biz.application.service;

import com.todo.biz.application.entity.bo.BizCounterBO;
import com.todo.biz.common.enums.CounterTypeEnum;
import com.todo.common.common.enums.BusinessSceneEnum;

import java.util.List;

/**
 * (BizCounter)表服务接口
 *
 * @author zhangwenxiang
 * @since 2024-03-04 00:19:44
 */
public interface BizCounterService {

    /**
     * 新增计数数据
     *
     * @param bizCounterBO
     * @return
     */
    Boolean insertBizCounter(BizCounterBO bizCounterBO);

    /**
     * 更新计数数据
     *
     * @param bizCounterBO
     * @return
     */
    Boolean updateBizCounter(BizCounterBO bizCounterBO);

    /**
     * 根据主键删除计数数据
     *
     * @param id
     * @return
     */
    Boolean removeBizCounterById(Long id);

    /**
     * 根据主键查询计数数据
     *
     * @param id
     * @return
     */
    BizCounterBO queryBizCounterById(Long id);

    /**
     * 根据业务id和场景查询计数数据列表
     *
     * @param bizId
     * @param scene
     * @return
     */
    List<BizCounterBO> queryBizCounterByBizIdAndScene(Long bizId, BusinessSceneEnum scene);

    /**
     * 根据业务id和场景和计数类型查询计数数据
     *
     * @param bizId
     * @param scene
     * @param counterType
     * @return
     */
    BizCounterBO queryBizCounterByBizIdAndSceneAndType(Long bizId, BusinessSceneEnum scene, CounterTypeEnum counterType);
}
